var status = -1;
var itemid = [4009237, 4009238];

function start() {
    action(1, 0, 0)
}

function action(h, j, k) {
    status++;
    var d = im.getEventManager("副本_起源之塔");
    var b = d.getNumberProperty("state");
    var c = im.getMapId();
    var g = getMyInfo();
    if (g == null || g.length == 0) {
        var a = -1
    } else {
        var a = g[0][0]
    }
    var l = "啊，是#b起源之塔练习入场券#k！通过它我就可以透过封印注入更强大的力量，把你直接传送到塔里的某一层。\r\n\r\n不过我能额外传送的力量也是有限的，最多只能帮你进入你#b曾经到达过的最深的层#k。此外，#r一部分层、守护者层，以及40层以上#k对于我来说也是未知的区域，没法传送到那里。\r\n\r\n";
    if (status < 0) {
        im.dispose()
    } else {
        if (status === 0) {
            if (c < 992001000 || c >= 992040000) {
                l += "想要我施加力量的话，你需要先进入到#b起源之塔里我能触及到的一层#k才行。";
                im.sendOk(l, 2540000);
                im.dispose()
            } else {
                if (a <= b) {
                    l += "咦，现在你已经位于探索过的最深层了啊，看来这次我没法帮助你了。";
                    im.sendOk(l, 2540000);
                    im.dispose()
                } else {
                    l += "那么，你现在想传送到哪一层呢？\r\n\r\n";
                    for (var e = b + 1; e <= Math.min(39, a); e++) {
                        l += "#L" + e + "##k前往#b第 " + e + " 层#l\r\n"
                    }
                    im.askMenu(l, 2540000)
                }
            }
        } else {
            if (status === 1) {
                var f = k;
                if (f < b + 1 || f >= 40 || f == 10 || f == 20 || f == 30) {
                    im.sendOk("我的力量没法延伸到 " + f + " 层。看来这次我没法帮助你了。", 2540000);
                    im.dispose()
                }
                im.gainItem(im.getItemId(), -1);
                im.dispose();
                im.warp(992000000 + f * 1000, 0)
            } else {
                im.dispose()
            }
        }
    }
}

function getMyInfo() {
    var a = im.queryForOneResult("SELECT `maxlevel`,`time`,`slots` FROM `oz_tower` WHERE `characterid`=?", im.getPlayer().getId());
    if (a.isEmpty()) {
        return null
    } else {
        return [a.getInt("maxlevel"), a.getInt("time"), a.getInt("slots")]
    }
};